package swing;

import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Date;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import dao.FormateurDAO;
import modele.Formateur;
import modele.Personne;

public class AjoutFormateur extends JPanel implements ActionListener {

	private JButton bouton;
	private TableauFormateurs tableauFormateurs;
	private JTextField saisiePhoto;
	private JTextField saisieNom;
	private JTextField saisiePrenom;
	private JTextField saisieDateNaissance;
	private JTextField saisieTel;
	private JTextField saisieAdresse;
	private JTextField saisieCp;
	private JTextField saisieVille;
	private JTextField saisieMail;
	private JTextField saisiePass;
	private JTextField saisieDiplome;
	private JTextField saisiePresa;

	public AjoutFormateur(TableauFormateurs tableauFormateurs) {
		this.tableauFormateurs = tableauFormateurs;
		setBorder(BorderFactory.createTitledBorder("Nouveau formateur"));
		setLayout(new GridBagLayout());
		GridBagConstraints gbc = new GridBagConstraints();

		gbc.anchor = GridBagConstraints.EAST;
		gbc.gridx = 0;
		gbc.gridy = 0;
		JLabel zoneNom = new JLabel("Nom : ");
		add(zoneNom, gbc);
		gbc.gridy = 1;
		JLabel zonePrenom = new JLabel("Prenom : ");
		add(zonePrenom, gbc);
		gbc.gridy = 2;
		JLabel zoneDateNaissance = new JLabel("Date de naissance : ");
		add(zoneDateNaissance, gbc);
		gbc.gridy = 3;
		JLabel zoneTel = new JLabel("Téléphone : ");
		add(zoneTel, gbc);
		gbc.gridy = 4;
		JLabel zoneAdresse = new JLabel("Adresse : ");
		add(zoneAdresse, gbc);
		gbc.gridy = 5;
		JLabel zoneCp = new JLabel("Code Postal : ");
		add(zoneCp, gbc);
		gbc.gridy = 6;
		JLabel zoneVille = new JLabel("Ville : ");
		add(zoneVille, gbc);
		gbc.gridy = 7;
		JLabel zoneMail = new JLabel("Email : ");
		add(zoneMail, gbc);
		gbc.gridy = 8;
		JLabel zonePass = new JLabel("Mot de passe : ");
		add(zonePass, gbc);
		gbc.gridy = 9;
		JLabel zoneDiplome = new JLabel("Diplôme : ");
		add(zoneDiplome, gbc);
		gbc.gridy = 10;
		JLabel zonePresa = new JLabel("Présentation : ");
		add(zonePresa, gbc);
		gbc.gridy = 11;
		JLabel zonePhoto = new JLabel("Photo : ");
		add(zonePhoto, gbc);



		gbc.anchor = GridBagConstraints.WEST;
		gbc.gridx = 1;
		gbc.gridy = 0;
		saisieNom = new JTextField(20);
		add(saisieNom, gbc);
		gbc.gridy = 1;
		saisiePrenom = new JTextField(20);
		add(saisiePrenom, gbc);
		gbc.gridy = 2;
		saisieDateNaissance = new JTextField(20);
		add(saisieDateNaissance, gbc);
		gbc.gridy = 3;
		saisieTel = new JTextField(20);
		add(saisieTel, gbc);
		gbc.gridy = 4;
		saisieAdresse = new JTextField(20);
		add(saisieAdresse, gbc);
		gbc.gridy = 5;
		saisieCp = new JTextField(20);
		add(saisieCp, gbc);
		gbc.gridy = 6;
		saisieVille = new JTextField(20);
		add(saisieVille, gbc);
		gbc.gridy = 7;
		saisieMail = new JTextField(20);
		add(saisieMail, gbc);
		gbc.gridy = 8;
		saisiePass = new JTextField(20);
		add(saisiePass, gbc);
		gbc.gridy = 9;
		saisieDiplome = new JTextField(20);
		add(saisieDiplome, gbc);
		gbc.gridy = 10;
		saisiePresa = new JTextField(20);
		add(saisiePresa, gbc);
		gbc.gridy = 11;
		saisiePhoto = new JTextField(20);
		add(saisiePhoto, gbc);
		gbc.gridy = 12;
		gbc.gridwidth = 2;
		bouton = new JButton("Ajouter");
		bouton.addActionListener(this);
		add(bouton, gbc);
	}

	@Override
	public void actionPerformed(ActionEvent e) {

		System.out.println("ajouter dans la base de données");
		System.out.println(saisiePresa.getText());
		Formateur f = new Formateur();
		f.setNom(saisieNom.getText());
		f.setPrenom(saisiePrenom.getText());
		f.setTelephone(saisieTel.getText());
		f.setAdresse(saisieAdresse.getText());
		f.setCode_postal(saisieCp.getText());
		f.setVille(saisieVille.getText());
		f.setEmail(saisieMail.getText());
		f.setPassword(saisiePass.getText());
		f.setDiplome(saisieDiplome.getText());
		f.setPresentation(saisiePresa.getText());
		f.setUrlphoto(saisiePhoto.getText());


		String sDateNaissance = saisieDateNaissance.getText();
		SimpleDateFormat df = new SimpleDateFormat("dd/mm/yyyy");
		if (sDateNaissance == null || sDateNaissance.matches("^ *$")) {

		}	

		Date dateNaissance = null;
		try {
			java.util.Date date = df.parse(sDateNaissance);
			dateNaissance = new java.sql.Date(date.getTime());
			System.out.println(df.format(dateNaissance));
			f.setDate_naissance(dateNaissance);

			if (!sDateNaissance.equals(df.format(dateNaissance))) {

			}
		} catch (ParseException eiu) {

		}



		if (tableauFormateurs != null) {

			FormateurDAO form = new FormateurDAO();
			try {
				form.inserer(f);
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}


			System.out.println("La liste a été mise à jour");
			tableauFormateurs.update();
		}


	}

	/**
	 * @return the bouton
	 */
	public JButton getBouton() {
		return bouton;
	}

}
